// service.js
import axios from 'axios'
import { Message } from 'element-ui';
import { getToken } from './util/SetTime';

const service = axios.create({
    // baseURL会自动加在接口地址上
    baseURL: "/api",
    timeout: 3000 // 指定请求的超时毫秒数，如果请求超过这个时间，那么请求就会中断。
})

// 添加请求拦截器
service.interceptors.request.use((config) => {
    // 在发送请求前做些什么
    // 获取并设置token
    config.headers = config.headers || {}; // 确保 headers 存在
    console.log('token', getToken('token'))
    config.headers['token'] = 'aa'
    // 确保不覆盖Content-Type
    // 确保POST请求使用JSON格式
    if (config.method === 'post' && config.data) {
        console.log('data', config.data)
        // 如果data是普通对象，确保它以JSON格式发送
        if (typeof config.data === 'object' && !(config.data instanceof FormData)) {
            config.data = JSON.stringify(config.data); // 手动序列化
            console.log('data2', config.data)
        }
    }
    return config
}, (error) => {
    // 对请求错误做些什么
    return Promise.reject(error)
})

// 添加响应拦截器
service.interceptors.response.use((response) => {
    // 对响应数据做些什么
    console.log(response)
    let { status, message } = response.data
    if (status == 200) {
        Message({ message: message || 'error', type: 'warning' })
    }
    return response.data
}, (error) => {
    // 对响应错误做点什么
    return Promise.reject(error)
})

export default service